모노리틱 아키텍처(Monolithic Architecture)

기존의 전통적인 웹 시스템 개발 스타일
하나의 애플리케이션 내에 모든 로직이 들어가 있는 구조이다

예를 들어 온라인 쇼핑몰 애플리케이션이 있다면 WAR 파일에 사용자 관리, 상품, 주문 관리 등 모든 컴포넌트가 들어 있고 이를 처리하는 UX로직까지 하나로 포장돼서 들어가 있는 구조라고 볼 수 있다

전체 애플리케이션을 하나로 처리하기 때문에 개발 도구에서 하나의 애플리케이션만 개발하면 되고, 배포가 간편하며 테스트도 하나의 애플리케이션만 수행하면 된다

문제점

작은 크기의 애플리케이션 개발에는 유용하지만 대형 시스템을 개발할 시 문제가 있다.

  1. 크기가 커서 빌드 및 배포 시간, 서버의 기동 시간이 오래 걸린다
  2. 소수의 실수가 전체 시스템의 빌드 실패를 유발한다
  3. 시스템 컴포넌트들이 로컬 콜(Call-by-Reference) 기반으로 타이트하게 연결되어 있기 때문에, 전체 시스템의 구조를 제대로 파악하지 않고 개발하면 다른컴포넌트에까지 영향을 준다. 이런 문제를 예방하기 위해서 전체 시스템의 구조를 이해해야 하는데, 대규모일수록 구조와 특성을 이해하기 어렵다.
  4. 특정 컴포넌트를 수정할 때도 재배포시 전체 애플리케이션 재배포를 해야한다